// models/paper.go
package models

import (
	"time"

	"gorm.io/gorm"
)

// Paper 试卷模型
type Paper struct {
	gorm.Model
	Title       string    `json:"title" gorm:"not null"`      // 试卷标题
	SubjectID   uint      `json:"subject_id" gorm:"not null"` // 所属科目ID
	Subject     Subject   `json:"subject" gorm:"foreignKey:SubjectID"`
	Type        string    `json:"type" gorm:"not null"`        // 试卷类型 (A卷/B卷)
	TotalScore  float64   `json:"total_score" gorm:"not null"` // 总分
	ExamDate    time.Time `json:"exam_date"`                   // 考试日期
	Description string    `json:"description"`                 // 试卷描述
}

// PaperReview 试卷批改记录
type PaperReview struct {
	gorm.Model
	PaperID     uint      `json:"paper_id" gorm:"not null"` // 试卷ID
	Paper       Paper     `json:"paper" gorm:"foreignKey:PaperID"`
	UserID      uint      `json:"user_id" gorm:"not null"` // 批改教师ID
	User        User      `json:"user" gorm:"foreignKey:UserID"`
	ReviewDate  time.Time `json:"review_date" gorm:"not null"`  // 批改日期
	StudentName string    `json:"student_name" gorm:"not null"` // 学生姓名
	StudentID   string    `json:"student_id" gorm:"not null"`   // 学生学号
	Score       float64   `json:"score" gorm:"not null"`        // 得分
	Comments    string    `json:"comments"`                     // 评语
}
